package com.atguigu.yygh.hosp.service;

import com.atguigu.yygh.model.hosp.Hospital;
import com.atguigu.yygh.vo.hosp.HospitalQueryVo;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * @author 孔德成
 * @slogan 致敬大师，致敬未来的你
 * @date 2021/9/3 9:55 上午
 * @desc 医院数据业务定义
 */
public interface HospitalService {
    /**
     * 上传医院信息
     * 如果是第一次上传，需要将医院状态设置为锁定，待管理员审核
     *
     * @param paramMap 参数列表
     */
    void save(Map<String, Object> paramMap);

    /**
     * 根据编号查询医院
     *
     * @param hoscode
     * @return
     */
    Hospital getByHoscode(String hoscode);

    /**
     * 分页条件查询医院列表
     *
     * @param page            当前页
     * @param limit           页面大小
     * @param hospitalQueryVo 条件查询对象
     * @return
     */
    Page<Hospital> selectPage(Integer page, Integer limit, HospitalQueryVo hospitalQueryVo);

    /**
     * 更新医院上线状态
     *
     * @param id     医院 id
     * @param status 1 上线，0 未上线
     */
    void updateStatus(String id, Integer status);

    /**
     * 根据id查询医院信息
     *
     * @param id mongo 主键
     * @return
     */
    Hospital show(String id);

    /**
     * 根据医院编号查询医院名称
     *
     * @param hoscode 医院编号
     * @return
     */
    String getHospName(String hoscode);

    /**
     * 根据医院等级和地区查询医院列表
     *
     * @param hospitalQueryVo
     * @return
     */
    List<Hospital> selectHospPage(HospitalQueryVo hospitalQueryVo);

    /**
     * 根据医院名称模糊查询医院列表
     *
     * @param hosname
     * @return
     */
    List<Hospital> findByHosname(String hosname);

    /**
     * 查询医院详情
     * @param hoscode 医院编号
     * @return
     */
    Map<String,Object> item(String hoscode);
}
